package com.hsjk.szwj.module.smedia.dal.dataobject.mediaManager;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 列出符合条件的公共素材库媒资基础信息 Response DTO
 */
@NoArgsConstructor
@Data
public class PublicMediaBasicInfosRespDTO {

    @JsonProperty("RequestId")
    private String requestId;
    @JsonProperty("TotalCount")
    private Integer totalCount;
    @JsonProperty("MediaInfos")
    private List<MediaInfosBean> mediaInfos;
    @JsonProperty("NextToken")
    private String nextToken;
    @JsonProperty("MaxResults")
    private Integer maxResults;

    @NoArgsConstructor
    @Data
    public static class MediaInfosBean {
        @JsonProperty("MediaId")
        private String mediaId;
        @JsonProperty("MediaBasicInfo")
        private MediaBasicInfoBean mediaBasicInfo;
        @JsonProperty("FileInfoList")
        private List<FileInfoListBean> fileInfoList;

        @NoArgsConstructor
        @Data
        public static class MediaBasicInfoBean {
            @JsonProperty("MediaId")
            private String mediaId;
            @JsonProperty("InputURL")
            private String inputURL;
            @JsonProperty("MediaType")
            private String mediaType;
            @JsonProperty("BusinessType")
            private String businessType;
            @JsonProperty("Source")
            private String source;
            @JsonProperty("Title")
            private String title;
            @JsonProperty("Description")
            private String description;
            @JsonProperty("Category")
            private String category;
            @JsonProperty("MediaTags")
            private String mediaTags;
            @JsonProperty("CoverURL")
            private String coverURL;
            @JsonProperty("UserData")
            private String userData;
            @JsonProperty("Snapshots")
            private String snapshots;
            @JsonProperty("Status")
            private String status;
            @JsonProperty("TranscodeStatus")
            private String transcodeStatus;
            @JsonProperty("CreateTime")
            private String createTime;
            @JsonProperty("ModifiedTime")
            private String modifiedTime;
            @JsonProperty("DeletedTime")
            private String deletedTime;
        }

        @NoArgsConstructor
        @Data
        public static class FileInfoListBean {
            @JsonProperty("FileBasicInfo")
            private FileBasicInfoBean fileBasicInfo;

            @NoArgsConstructor
            @Data
            public static class FileBasicInfoBean {
                @JsonProperty("FileName")
                private String fileName;
                @JsonProperty("FileStatus")
                private String fileStatus;
                @JsonProperty("FileType")
                private String fileType;
                @JsonProperty("FileSize")
                private String fileSize;
                @JsonProperty("FileUrl")
                private String fileUrl;
                @JsonProperty("Region")
                private String region;
                @JsonProperty("FormatName")
                private String formatName;
                @JsonProperty("Duration")
                private String duration;
                @JsonProperty("Bitrate")
                private String bitrate;
                @JsonProperty("Width")
                private String width;
                @JsonProperty("Height")
                private String height;
            }
        }
    }
}
